In recent years, the use of communication systems having wireless mobile communication units which communicate using an optical or radio link with a hardwired network, such as a local area network (LAN), has become quite widespread. Retail stores and warehouses, for example, may use such systems to track inventory and replenish stock. Employees may enter inventory information using a hand held or portable communication unit which can be carried through the store or warehouse. In manufacturing facilities, such systems are useful for tracking parts, completed products and defects. In a medical environment, these systems can reduce the time needed to fill out forms and eliminate inaccuracies by allowing medical personnel to transmit data directly from a mobile communication unit carried by the medical personnel.
A conventional communication system generally includes a number of fixed base stations (i.e. access points) interconnected by a medium to form a network backbone. The network backbone may be wireless in nature or be a hardwired connection formed using a twisted pair cable or shielded coaxial cable for fiber optic lines, for example. Each base station has a service area or cell surrounding the base station within which it has the ability to transmit and to receive relatively error-free data from a mobile communication unit within the area.
In such a network, a mobile communication unit must initially register itself with a base station and then attempt to begin a session with a host computer whereby the host computer allows communication to occur between itself and the particular mobile communication unit. More particularly, when a mobile communication unit is powered up, it “registers” with a base station. However, as the location of this mobile communication unit changes, the mobile communication unit may register with another base station, thereby resulting in a deregistration with the previous base station. Furthermore, deregistration will sometimes occur if there is no communication between the mobile communication unit and its corresponding base station within a predetermined period of time. Thus, in such communication systems, mobile communication units register and deregister frequently as the mobile communication units are moved about.
Each mobile communication unit within the communication system must also begin a connection with a server such as a host computer (or other device which provides application or information based services) once it has registered with a base station. A connection is established to allow the mobile communication unit and server to communicate using a known protocol such as TCP/IP. Following a connection being established, a user of the mobile communication unit is typically prompted to login and begin a session with that particular server. A session is typically only initiated once at start up by each mobile communication unit and is active until such time as the mobile communication unit or server ends the session regardless of the number of registrations and deregistrations which may have taken place with respect to base stations during this period. In order for the mobile communication unit to enter into the system and begin a session with the server, the mobile communication unit must have a unique network identification code (ID). The ID allows the server or other device on the backbone handling session requests to recognize and distinguish each mobile communication unit.
One widely accepted computer architecture, developed specifically to accommodate the above-mention distributed computing environment is the client-server model. The client-server system in general consists of the server which services the requests of a large number of smaller computers (e.g.,mobile communication units), or clients, that connect to it. The mobile communication units do not typically communicate with each other, but rather only exchange data with the server, which thereby acts as a clearinghouse for mobile communication unit requests and inter mobile communication unit communications.
In order to ensure proper routing of messages between the server and an intended mobile communication unit, the messages are initially broken up into data packets, each of which receive a destination address according to a consistent protocol, and which are reassembled upon receipt by the target computer. The exchange of information between endpoints in a packet network is achieved via a “protocol.” A commonly accepted protocol for this purpose is the Internet Protocol (IP), which provides for networking. Used in conjunction with the IP may be a Transmission Control Protocol (TCP) which provides for a reliable stream delivery of messages or a User Datagram Protocol (UDP) which allows for distinguishing messages among multiple destinations with a given host computer.
More specifically, the TCP protocol is a popular connection-oriented transport layer protocol that is used around the world. The TCP protocol offers a full duplex reliable virtual end-to-end connection for transporting information between endpoints by using one or more of the packets, each of which comprises both control information and data.
The mobile communication units (e.g., wireless terminals) that perform client-server communications (e.g., terminal emulation) establish a TCP connection with the server. Then, they use the connection to establish the session.
When a connection is established between a client (i.e., mobile communication unit) and a server (i.e., host computer) the two machines dedicate a portion of their resources to the connection. People who use mobile communication units frequently power them OFF without logging out or move them out of communication range, an action that would inform the server that the connection will not be used and permit it to recover the resources that it has dedicated to the connection. To avoid this problem, servers (i.e., host computers) are often configured to employ a mechanism deemed a “keepalive” probe.” The keepalive probe consists of several IP packets, sent in a burst, by the server. The probe determines if the client (mobile communication unit) is still connected to the LAN and operational. The IP packets of keepalive probes differ from ordinary IP packets in that they do not increment a sequence number that synchronize the transfer of bytes in a data stream between the two end points as a convention packet using the TCP protocol would. In this manner, such IP packet is ‘invisible’ or ‘transparent’. Generally, the IP packet sequence number is one less than the number that the receiving node expects to receive. This has two effects: (1) the receiving node will immediately return an acknowledgment packet to the sender; and (2) the IP packet does not advance the sequence number of the receiving node and therefore it does not change the synchronization state between the two end points.
When a server, that has activated the keepalive feature, does not receive a data packet for a period of time called the “keepidle time,” it will send a keepalive probe to the mobile communication unit to assess continued activity. Upon receiving a keepalive message, the mobile communication unit, if active, returns an acknowledgment packet. The server is configured to end its connection with the mobile communication unit when none of the packets in the keepalive probe are acknowledged. Of course the mobile communication unit will not realize the server ended this connection until the mobile communication unit next attempts to communicate with the server.
If the mobile communication unit acknowledges one of the packets in the probe, the server will determine that the mobile communication unit is still active and reset its keepidle timer, thus maintaining the current connection. However, if none of the packets in the keepalive burst are acknowledged, the server will terminate the connection. This typically causes an application program running on the server to end its session with the mobile communication unit.
However, oftentimes workers using mobile communication units (i.e., clients) lay down the mobile communication unit in order to perform another activity or simply place the mobile communication unit in a sleep state in order to conserve battery power. In many of these situations, the worker still desires to maintain the current session so that when he returns to the mobile communication unit or reactivates it, he/she can immediately continue the session he/she was engaged in. Further, in many instances the mobile communication unit may inadvertently or purposefully be taken out of communication range of any access point which establishes a communication link to the server. Unfortunately, as mentioned above, the server will drop the current connection and session if it sends a keepalive probe to the mobile communication unit and it doesn't receive any acknowledgments. When the mobile communication unit is placed in a sleep mode or is out of range, it is unable to receive and acknowledge the keepalive probe, and therefore the current session may be prematurely ended. In many existing systems, the amount of time a server allows before ending a connection may be relatively short as the server was not configured to handle the problems now encountered with mobile communication units.
In light of the above, there is a strong need in the art for a way to maintain a connection and session between the server and the mobile communication unit when the mobile communication unit is in a low power (i.e., sleep) mode or out of range. In particular, there is a strong need in the art for a mobile communication unit which is able to prevent the host computer from prematurely ending the current connection and session while the mobile communication unit is in a sleep mode and increase the amount of time the mobile communication unit can be out of communication range with the server prior to the connection and session being dropped.